﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RRRSRoguelike.Enums
{

	/// <summary>
	/// Available actions
	/// </summary>
    public enum Actions
    {
    	/// <summary>enum</summary> 
        North = 0,
        /// <summary>enum</summary> 
        South,
        /// <summary>enum</summary> 
        East,
        /// <summary>enum</summary> 
        West,
        /// <summary>enum</summary> 
        Jump,
        /// <summary>enum</summary> 
        Shoot,
        /// <summary>enum</summary> 
        Look,
        /// <summary>enum</summary> 
        Pick,
        /// <summary>enum</summary> 
        Drop,
        /// <summary>enum</summary> 
        Build,
        /// <summary>enum</summary> 
        Trap,
        /// <summary>enum</summary> 
        Open,
        /// <summary>enum</summary> 
        Wait,
        /// <summary>enum</summary> 
        Quit,
        /// <summary>enum</summary> 
        Help,
        /// <summary>enum</summary> 
        SoundToggle,
        /// <summary>enum</summary> 
        FollowToggle,
        /// <summary>enum</summary> 
        ChangeAnimationSpeed,
        /// <summary>enum</summary> 
        ToggleGodMode
    }

    /// <summary>
    /// enum of generic sounds
    /// </summary>
    public enum SoundList
    {
    	/// <summary>enum</summary> 
        Battle,
        /// <summary>enum</summary> 
        Pluck
    }

    /// <summary>
    /// enum of generic camera types
    /// </summary>
    public enum CameraType
    {
    	/// <summary>enum</summary> 
        Square,
        /// <summary>enum</summary> 
        Rounded
    }

    /// <summary>
    /// Directions enum. 
    /// </summary>
    public enum Direction 
    { 
    	/// <summary>enum</summary> 
    	N = 0,
		/// <summary>enum</summary> 
    	NE,
		/// <summary>enum</summary>     	
		E,
		/// <summary>enum</summary> 
		SE,
		/// <summary>enum</summary> 
		S,
		/// <summary>enum</summary> 
		SW,
		/// <summary>enum</summary> 
		W,
		/// <summary>enum</summary> 
		NW,
		/// <summary>enum</summary> 
		Wait
    }

    /// <summary>
    /// StairDirection
    /// </summary>
    public enum StairDirection 
    { 
    	/// <summary>enum</summary> 
    	Up,
		/// <summary>enum</summary>     	
		Down,
		/// <summary>enum</summary> 
		Unknown 
    }

    /// <summary>
    /// text alignment enum
    /// </summary>
    public enum TextAlignment
    {
		/// <summary>enum</summary>     	
        Single,
        /// <summary>enum</summary> 
        Center,
        /// <summary>enum</summary> 
        Multi
    }

    /// <summary>
    /// enum of layers
    /// </summary>
    public enum Layers
    { 
    	/// <summary>enum</summary> 
        Base,
        /// <summary>enum</summary> 
        BaseEffect,
        /// <summary>enum</summary> 
        Prop,
        /// <summary>enum</summary> 
        Creature,
        /// <summary>enum</summary> 
        Effect

    }
    
    /// <summary>
    /// Describes the panels by game function
    /// </summary>
    public enum GamePanels
    {
    	/// <summary>
    	/// Used to display info like the current dungeon and level
    	/// </summary>
    	Title,
    	/// <summary>
    	/// Used to display users and prompt user.
    	/// </summary>
    	Message,
    	/// <summary>
    	/// Used to display context menu and choices
    	/// </summary>
    	Menu,
    	/// <summary>
    	/// Used to display stats actually refered to as HUD in dungeonScreen
    	/// </summary>
    	Stats
    }
    
    /// <summary>
    /// Enum of panels in game screen
    /// </summary>
    public enum Panels
    {
    	/// <summary>enum</summary> 
    	Top,
    	/// <summary>enum</summary> 
    	Bottom,
    	/// <summary>enum</summary> 
    	Left,
    	/// <summary>enum</summary> 
    	Right
    }
    
    /// <summary>
    /// enum for the standard high score entry
    /// </summary>
    public enum HighScoreEntries
    {
    	/// <summary>
    	/// Profile name
    	/// </summary>
    	Name,
    	/// <summary>
    	/// Final score calculated by ruleset
    	/// </summary>
    	Score,
    	/// <summary>
    	/// Name of ruleset
    	/// </summary>
    	Ruleset,
    	/// <summary>
    	/// Version of Application
    	/// </summary>
    	Version,
    	/// <summary>
    	/// Seed used for dungeon
    	/// </summary>
    	Seed
    }
}
